"===============================================
"插件：YouCompleteMe！
"功能：这个插件就不用多说了吧
Plugin 'Valloric/YouCompleteMe'
" YouCompleteMe 功能
" 补全功能在注释中同样有效
let g:ycm_complete_in_comments=1
" 允许 vim 加载 .ycm_extra_conf.py 文件，不再提示
let g:ycm_confirm_extra_conf=0
" 开启 YCM 基于标签引擎
let g:ycm_collect_identifiers_from_tags_files=1
" 引入 C++ 标准库tags，这个没有也没关系，只要.ycm_extra_conf.py文件中指定了正确的标准库路径
"set tags+=/data/misc/software/misc./vim/stdcpp.tags
" YCM 集成 OmniCppComplete 补全引擎，设置其快捷键
""inoremap <leader>; <C-x><C-o>
" 补全内容不以分割子窗口形式出现，只显示补全列表
set completeopt-=preview
" 从第一个键入字符就开始罗列匹配项
let g:ycm_min_num_of_chars_for_completion=1
" 禁止缓存匹配项，每次都重新生成匹配项
let g:ycm_cache_omnifunc=1
" 语法关键字补全
let g:ycm_seed_identifiers_with_syntax=1
" 加载tags文件中的支持
let g:ycm_collect_identifiers_from_tags_files=1
" 修改对C函数的补全快捷键，默认是CTRL + space，修改为ALT + ;
""let g:ycm_key_invoke_completion = '<M-;>'
" 设置转到定义处的快捷键为ALT + G，这个功能非常赞
nmap <C-g> :YcmCompleter GoToDefinitionElseDeclaration<CR>
nmap <C-h> :YcmCompleter GoToInclude<CR>
" 禁用YouCompleteMe自带的语法检查（它的语法检查无法禁用）
let g:ycm_register_as_syntastic_checker=1
" <C-R>=expand("<cword>")<CR><CR>
let g:ycm_error_symbol = '>>'
let g:ycm_warning_symbol = '>*'

" 引入，可以补全系统头文件（Windows下没用），针对新老版本YCM做了兼容
" old version
if !empty(glob('$VIM\vimfiles\bundle\YouCompleteMe\cpp\ycm\.ycm_extra_conf.py'))
    "let g:ycm_global_ycm_extra_conf = '$VIM\vimfiles\bundle\YouCompleteMe\cpp\ycm\.ycm_extra_conf.py'
endif
" new version
if !empty(glob('$VIM\vimfiles\bundle\YouCompleteMe\third_party\ycmd\cpp\ycm\.ycm_extra_conf.py'))
    "let g:ycm_global_ycm_extra_conf = '$VIM\vimfiles\bundle\YouCompleteMe\third_party\ycmd\cpp\ycm\.ycm_extra_conf.py'
endif

let g:ycm_show_diagnostics_ui = 0

" 如果需要补全Python，请记得使用pip下载jedi包。
